python time获取时间差

Python计算两个时间的时间差

最近需要用python实现计算一个时间差的小函数。

# coding: utf-8

from datetime import datetime import time

format = '%Y-%m-%d %H:%M:%S' a = datetime.strptime("2019-03-09 08:52:51", format) b = datetime.strptime("2019-03-10 11:52:51", format) t1 = time.mktime(a.timetuple()) * 1000 + a.microsecond / 1000 t2 = time.mktime(b.timetuple()) * 1000 + b.microsecond / 1000 a = t2-t1 b = a/1000/3600 c = int(b/24) d = int(b%24) print(c) print(d)

times = "经过了:"+str(c)+"天"+str(d)+"小时" print(times)

运行结果:

Python计算两个时间的时间差

python 如何计算时间差

Python Tip]如何计算时间差

Q:如何方便的计算两个时间的差,如两个时间相差几天,几小时等

A:使用datetime模块可以很方便的解决这个问题,举例如下:

>>> import datetime

d1 = datetime.datetime(2005, 2, 16) d2 = datetime.datetime(2004, 12, 31) (d1 – d2).days 47

上例演示了计算两个日期相差天数的计算。

import datetime starttime = datetime.datetime.now() #long running endtime = datetime.datetime.now() print (endtime – starttime).seconds

上例演示了计算运行时间的例子,以秒进行显示。

>>> d1 = datetime.datetime.now()

d3 = d1 + datetime.timedelta(hours=10) d3.ctime()

上例演示了计算当前时间向后10小时的时间。

其本上常用的类有:datetime和timedelta两个。它们之间可以相互加减。每个类都有一些方法和属性可以查看具体的值,如datetime可以查看:天数(day),小时数(hour),星期几(weekday())等;timedelta可以查看:天数(days),秒数(seconds)等。

详解python:time模块用法

time模块下有两种时间表示方法:

第1种是:时间戳的方式。是基于1970年1月1日0时0分0秒的偏移。浮点数。

第2种是:struct_time()类型的表示方法。gmtime()和localtime()可以将时间戳显示为struct_time()类型。

第3种是:格式化时间。其中strftime()函数可以把struct_time()时间格式化显示。

strptime()函数可以把时间字符串解释为struct_time()类型,相反,mktime()将struct_time()类型解释为秒

详解python:time模块用法

Python time asctime() 函数接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"

Python time ctime() 函数把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。 默认time.time()为参数。相当于 asctime(localtime(secs))。

>>>import time

time.time() 1446643591.427887

time.sleep(2.5) time.clock() #用于返回第一次调用该方法到现在的秒数 4.5289567910348396e-07

time.gmtime() #可选参数[sec]表示自1970年1月1日以来的秒数,默认time.time此函数返回一个time.struct_time类型对象,这个对象包括年份,日月,星期,天数,时分秒等描述时间的信息。, time.struct_time(tm_year=2015, tm_mon=11, tm_mday=4, tm_hour=13, tm_min=31, tm_sec=4, tm_wday=2, tm_yday=308, tm_isdst=0)

time.gmtime(time.time()-24*60*60) #返回昨天此时对应的time_struct对象 time.struct_time(tm_year=2015, tm_mon=11, tm_mday=3, tm_hour=13, tm_min=31, tm_sec=46, tm_wday=1, tm_yday=307, tm_isdst=0)

time.localtime() #返回本地时间对应的一个time_struct对象 time.struct_time(tm_year=2015, tm_mon=11, tm_mday=4, tm_hour=21, tm_min=32, tm_sec=28, tm_wday=2, tm_yday=308, tm_isdst=0)

>>> time.gmtime(11.0) time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=11, tm_wday=3, tm_yday=1, tm_isdst=0)

time.localtime(11.0) time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=11, tm_wday=3, tm_yday=1, tm_isdst=0)

time.mktime(time.localtime()) #和上述两个函数的操作相反,用于将structt_time对象转换为累加秒数 1446644032.0

time.strftime('%Y-%m-%d %H:%M:%S') #将时间按照给定格式解释为时间字符串 '2015-11-04 21:34:51'

time.strftime('%w,%j',time.gmtime())

%Y 对应年份四位数表示

%y 对应年份两位数表示 %m 对应月份 %d 对应日期

%H 对应时间 24小时制 %I 对应时间12小时制

%M 对应分钟 %S 对应秒钟

%j 对应一年中的第几天 %w 对应星期 %W一年中的星期数'3,308'

time.strptime('2009-06-23 15:30:53', '%Y-%m-%d %H:%M:%S') #将时间字符串解释为一个struct_time对象,它接收两个字符串参数 time.struct_time(tm_year=2009, tm_mon=6, tm_mday=23, tm_hour=15, tm_min=30, tm_sec=53, tm_wday=1, tm_yday=174, tm_isdst=-1)

time.ctime() #将一个时间戳转换成一个字符串,默认为当前时间戳 'Wed Nov 04 21:38:31 2015'

需要注意的是:格式化时间转化为时间戳,再转化为格式化时间时,gmtime和localtime()结果可能会相差一天

原因:gmtime转出来的是0时区的标准时间,localtime是将时区考虑在内了

以上所述是小编给大家介绍的python:time模块用法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对码农之家网站的支持!

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。